package ${file.pkg_this};

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.specter.mvc.model.Page;
import com.specter.mvc.model.Request;

import ${file.pkg_base}.entity.${bean.entityName};

/**
 * ${meta.remark!''} ${bean.tableRemark!''} 接口
 *
 * @author ${meta.author!''}
 * @since ${.now?string("yyyy-MM-dd")}
 * @version 1.0
 */
public interface ${file.file_name} {

	/**
	 * 新增插入数据
	 *
	 * @param entity 待保存数据对象
	 * @return 新增插入成功与否
	 */
	public boolean _insert(${bean.entityName} entity);

	/**
	 * 按照ID删除记录
	 *
	 * @param id 主键Id
	 * @return 删除成功与否
	 */	
	public boolean _delete(Serializable id);

	/**
	 * 按照值相等删除记录
	 *
	 * @param entity 实体对象
	 * @return 删除成功与否
	 */	
	public boolean _delete_by_map(${bean.entityName} entity);

	/**
	 * 更新数据（含空值情况）
	 *
	 * @param entity 待更新对象
	 * @return 更新对象成功与否
	 */	
	public boolean _update(${bean.entityName} entity);

	/**
	 * 更新数据（不含空值）
	 *
	 * @param entity 待更新实体
	 * @return 更新对象成功与否
	 */	
	public boolean _update_by_map(${bean.entityName} entity);

	/**
	 * 按照ID查询记录
	 *
	 * @param id 主键Id
	 * @return 实体对象
	 */	
	public ${bean.entityName} _select(Serializable id);

	/**
	 * 按照值相等查询唯一值
	 *
	 * @param entity 查询条件
	 * @return 实体对象
	 */	
	public ${bean.entityName} _select_by_key(${bean.entityName} entity);

	/**
	 * 按照Id批量查询结果
	 *
	 * @param ids 批量Id的List列表
	 * @return 查询结果列表
	 */	
	public List<${bean.entityName}> _select_by_ins(List<Serializable> ids);

	/**
	 * 按照条件相等查询列表
	 *
	 * @param map 查询条件
	 * @return 查询结果列表
	 */	
	public List<${bean.entityName}> _select_by_map(Map<String, Object> map);

	/**
	 * 按照条件相等查询分页
	 *
	 * @param request 查询条件
	 * @return 分页对象
	 */	
	public Page<${bean.entityName}> _select_by_pag(Request request);

}